﻿
Imports System.Data
Imports EVOLTA.Promocion.Bl.Be
Imports EVOLTA.Promocion.Bl.Bc

Partial Class reportes_reporteVentas
    Inherits System.Web.UI.Page

#Region "Instancias a las Capas de Entidad y Negocio"

    Dim objnegVendedor As New EVOLTA.Promocion.Bl.Bc.Rvendedor
    Dim objnegSeparacionVenta As New EVOLTA.Promocion.Bl.Bc.RseparacionVenta

#End Region

#Region "Variables Globales"
    Public dtbInformacion As New DataTable
#End Region

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Me.hdfFechaCierre.Value = Date.Now.ToShortDateString()

        If (Not Page.IsPostBack) And (Request.Params("__EVENTTARGET") Is Nothing) Then
            Me.Cargar_vendedores()

            ' Reinicializando controles
            Me.lblSubTitulo2.ForeColor = Drawing.Color.Red
            Me.lblSubTitulo3.Text = String.Empty
            Me.lnkBtnExportar.Enabled = False
        Else
            If Me.txtFechaIni.Text.Trim.Equals(String.Empty) Or Me.txtFechaFin.Text.Trim.Equals(String.Empty) Then
                Me.lblSubTitulo2.Text = String.Empty
                Me.lnkBtnExportar.Enabled = False
                Me.lblSubTitulo3.Text = "Para realizar una consulta debe de seleccionar un fecha de inicio y fecha de fin."
                Me.lblSubTitulo3.ForeColor = Drawing.Color.Red
            Else
                Me.lnkBtnExportar.Enabled = True
                Me.lblSubTitulo2.ForeColor = Drawing.Color.Black
                Me.lblSubTitulo3.ForeColor = Drawing.Color.Black

                Dim strSubtitulo2 As String = String.Empty
                Dim strSubtitulo3 As String = String.Empty

                If Me.ddlVendedor.SelectedItem.Value.ToString.Equals("%") Then
                    strSubtitulo2 = "Información correspondiente a TODOS los vendedores"
                Else
                    strSubtitulo2 = "Información correspondiente al vendedor " & Me.ddlVendedor.SelectedItem.Text & ""
                End If

                If Me.txtNombreCliente.Text.Trim.Equals(String.Empty) Then
                    strSubtitulo2 = strSubtitulo2 & " y a TODOS los clientes"
                Else
                    strSubtitulo2 = strSubtitulo2 & " y Filtrado por Nombre de Cliente: " & Me.txtNombreCliente.Text.Trim.ToUpper()
                End If

                strSubtitulo3 = "Información con Fecha de Inicio " & Me.txtFechaIni.Text & " y Fecha de Fin " & Me.txtFechaFin.Text

                Me.lblSubTitulo2.Text = strSubtitulo2
                Me.lblSubTitulo3.Text = strSubtitulo3

                Me.cargarInformacion()

                ViewState("vst_subtitulo_2") = Me.lblSubTitulo2.Text
                ViewState("vst_subtitulo_3") = Me.lblSubTitulo3.Text
            End If
        End If
    End Sub

    Private Sub Cargar_vendedores()
        Dim dtbVendedores As New DataTable
        dtbVendedores = objnegVendedor.negCargar_vendedores(Me.Master.descEmpresa.Trim)

        Me.ddlVendedor.DataSource = dtbVendedores
        Me.ddlVendedor.DataTextField = "Nombre"
        Me.ddlVendedor.DataValueField = "Id"
        Me.ddlVendedor.DataBind()
    End Sub

    Private Sub cargarInformacion()
        Dim strVendedorId As String = Me.ddlVendedor.SelectedItem.Value.ToString()
        Dim strFechaInicio As String = Me.txtFechaIni.Text
        Dim strFechaFin As String = Me.txtFechaFin.Text
        Dim strNombreCliente As String = Me.txtNombreCliente.Text.Trim()

        Me.dtbInformacion = objnegSeparacionVenta.negCargar_reporte_ventas(Me.Master.descEmpresa.Trim, Me.Master.idProyecto, Me.Master.idEtapa, strVendedorId, strFechaInicio, strFechaFin, strNombreCliente)

        Dim dvwInformacion As New DataView
        dvwInformacion = Me.dtbInformacion.DefaultView

        If Me.dtbInformacion.Rows.Count > 0 Then
            Session("ssn_Exportar") = dvwInformacion.ToTable

            '' Ubicando las columnas
            'Me.dtbInformacion.Columns("Proy").SetOrdinal(0)
            'Me.dtbInformacion.Columns("Deposito").SetOrdinal(1)
            'Me.dtbInformacion.Columns("Estacionamiento").SetOrdinal(2)
            'Me.dtbInformacion.Columns("Departamento").SetOrdinal(3)
            'Me.dtbInformacion.Columns("DOC Identidad").SetOrdinal(4)
            'Me.dtbInformacion.Columns("Nombre").SetOrdinal(5)
            'Me.dtbInformacion.Columns("Cobrado").SetOrdinal(6)
            'Me.dtbInformacion.Columns("Deuda").SetOrdinal(7)
            'Me.dtbInformacion.Columns("Estado").SetOrdinal(8)
            'Me.dtbInformacion.Columns("Tipo Deuda").SetOrdinal(9)
            'Me.dtbInformacion.Columns("Fecha de Vencimiento").SetOrdinal(10)
            'Me.dtbInformacion.Columns("Prox Vcmto Semanas").SetOrdinal(11)
            'Me.dtbInformacion.Columns("Fecha de Pago").SetOrdinal(12)

            Me.rptReporteGlobal.DataSource = Me.dtbInformacion
            Me.rptReporteGlobal.DataBind()
        End If
    End Sub

    Protected Sub lnkBtnExportar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lnkBtnExportar.Click
        Dim strNombreArchivo As String = "Reporte de Ventas - " & System.Globalization.CultureInfo.CurrentUICulture.TextInfo.ToTitleCase(Me.Master.descEmpresa.Trim) & "_" & Microsoft.VisualBasic.Right("0" & Date.Now.Day.ToString(), 2) & Microsoft.VisualBasic.Right("0" & Date.Now.Month.ToString(), 2) & Date.Now.Year.ToString()
        Dim strTituloHoja As String = "REPORTE DE VENTAS - " & Me.Master.descEmpresa.Trim.ToUpper()
        Dim strSubTituloHoja As String = ViewState("vst_subtitulo_2").ToString()

        Dim dtbInformacion As New DataTable

        dtbInformacion = Session("ssn_Exportar")

        If dtbInformacion.Rows.Count > 0 Then
            'dtbInformacion.Columns.RemoveAt(0)
            'dtbInformacion.Columns.RemoveAt(0)

            '' Cambio de nombre de columnas para una buena exportación
            'dtbInformacion.Columns("Deposito").ColumnName = "Depósito"
            'dtbInformacion.Columns("Estacionamiento").ColumnName = "Estac."
            'dtbInformacion.Columns("Departamento").ColumnName = "Dpto"
            'dtbInformacion.Columns("Dias").ColumnName = "Días"
            'dtbInformacion.Columns("Prox Vcmto Semanas").ColumnName = "Próx. Vcmto Semanas"
            'dtbInformacion.Columns("Morosidad Mes").ColumnName = "Morosidad (Mes)"
            'dtbInformacion.Columns("Morosidad Dias").ColumnName = "Morosidad (Días)"
            'dtbInformacion.Columns("Proy").ColumnName = "Proy."
            'dtbInformacion.Columns("Nro Operacion").ColumnName = "N° Operación"

            'Dim dtbExportar As New DataTable
            'Dim drwFila As DataRow

            'For i As Integer = 0 To dtbInformacion.Columns.Count - 1
            '    dtbExportar.Columns.Add(dtbInformacion.Columns(i).ColumnName)
            'Next

            'Dim strNombreCliente As String = dtbInformacion.Rows(0)("Nombre").ToString.Trim()
            'Dim strDepartamento As String = dtbInformacion.Rows(0)("Dpto").ToString.Trim()

            'For i As Integer = 0 To dtbInformacion.Rows.Count - 1
            '    If strNombreCliente.Equals(dtbInformacion.Rows(i)("Nombre").ToString.Trim()) AndAlso _
            '        strDepartamento.Equals(dtbInformacion.Rows(i)("Dpto").ToString.Trim()) Then

            '        drwFila = dtbExportar.NewRow

            '        For k As Integer = 0 To dtbInformacion.Columns.Count - 1
            '            drwFila(dtbInformacion.Columns(k).ColumnName) = dtbInformacion.Rows(i)(k).ToString()
            '        Next

            '        dtbExportar.Rows.Add(drwFila)
            '    Else
            '        strNombreCliente = dtbInformacion.Rows(i)("Nombre").ToString.Trim()
            '        strDepartamento = dtbInformacion.Rows(i)("Dpto").ToString.Trim()

            '        drwFila = dtbExportar.NewRow

            '        For k As Integer = 0 To dtbInformacion.Columns.Count - 1
            '            drwFila(dtbInformacion.Columns(k).ColumnName) = ""
            '        Next

            '        dtbExportar.Rows.Add(drwFila)

            '        drwFila = dtbExportar.NewRow

            '        For k As Integer = 0 To dtbInformacion.Columns.Count - 1
            '            drwFila(dtbInformacion.Columns(k).ColumnName) = dtbInformacion.Rows(i)(k).ToString()
            '        Next

            '        dtbExportar.Rows.Add(drwFila)
            '    End If
            'Next

            Dim objInfraestructura As New Infraestructura
            Dim strOpcionalCabecera As String = String.Empty

            Dim strSubtitulo3 As String = ViewState("vst_subtitulo_3").ToString()

            strOpcionalCabecera = "<tr><th colspan=""" & dtbInformacion.Columns.Count & """>" & strSubtitulo3 & "</th></tr>"
            objInfraestructura.Exportar_a_excel(strNombreArchivo, strTituloHoja, strSubTituloHoja, dtbInformacion, Nothing, strOpcionalCabecera)
        End If
    End Sub

    Protected Sub btnCancelar_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        Me.ModalPopupExtender.Hide()
    End Sub

End Class
